EC2からTiDB Cloud(Serverless)にTLSを使用して接続してみた

EC2からTiDB Cloud(Serverless)にTLSを使用して接続してみた

Clock Icon2023.05.17

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、ゲームソリューショングループのsoraです。
今回は、EC2からTiDB Cloud(Serverless)にTLSを使用して接続してみたことについて書いていきます。

はじめに

TiDBはクラウドネイティブな分散型のNewSQLデータベースです。
TiDB CloudはTiDBをフルマネージドでクラウド上で使えるサービスです。
詳細については、以下記事をご参照ください。

今回は、こちらの公式ページを参考に、EC2サーバからTiDB CloudにTLSを使用して接続してみます。

EC2サーバへのMySQLクライアントのインストール

今回はTiDB Cloudへの接続にMySQLを使用するため、MySQLクライアントをインストールします。
EC2のAMIはAmazon Linux 2023を使用します。

$ sudo dnf -y localinstall  https://dev.mysql.com/get/mysql80-community-release-el9-1.noarch.rpm
$ sudo dnf -y install mysql mysql-community-client

これでMySQLクライアントがインストールできました。

TiDB Cloudへの接続準備

TiDB Cloudへ接続するための準備をします。
TiDB CloudでServerlessのクラスタを作成した後、クラスタのOverviewからConnectを押下します。
今回使用するTiDBクラスターは東京リージョンでEC2と同じリージョンにしていますが、リージョンが異なっていても接続可能です。
Endpoint TypeをPublic、Connect WithをMySQL CLI、Operating SystemをCentOS/RedHat/Fedoraにします。
Create passwordを押下すると、パスワードが生成されてコマンド内のyour_passwordの部分に記載されます。
コマンドは接続時に使用するため、コピーしておいてください。

EC2からTiDB Cloudへ接続

EC2にSSHで接続して、先ほどのTiDB Cloudへの接続コマンドを実行します。

$ mysql --connect-timeout 15 -u '<user_name>' -h gateway01.ap-northeast-1.prod.aws.tidbcloud.com -P 4000 -D test --ssl-mode=VERIFY_IDENTITY --ssl-ca=/etc/pki/tls/certs/ca-bundle.crt -p<your_password>
mysql>

接続ができたため、簡単なDB操作をしてみます。

mysql> show databases;
+--------------------+                                                          
| Database           |                                                          
+--------------------+                                                          
| INFORMATION_SCHEMA |                                                          
| PERFORMANCE_SCHEMA |                                                          
| mysql              |                                                          
| sample_data        |                                                          
| test               |                                                          
+--------------------+                                                          
5 rows in set (0.00 sec)                                                        

mysql> drop database test;                                                      
Query OK, 0 rows affected (0.28 sec)                                            

mysql> show databases;                                                          
+--------------------+                                                          
| Database           |                                                          
+--------------------+                                                          
| INFORMATION_SCHEMA |                                                          
| PERFORMANCE_SCHEMA |                                                          
| mysql              |                                                          
| sample_data        |                                                          
+--------------------+                                                          
4 rows in set (0.01 sec)  

testのデータベースを削除できました。
TiDB Cloud側でも確認してみます。
before after TiDB Cloud側でもtestデータベースが削除されていることが確認できました。

参考にしたページ

Serverless Tierへの TLS 接続
【AWS EC2】Amazon Linux2にMySQLのclientだけをインストールしてRDSに接続する方法
MySQLのGPGキーの有効期限切れのためインストールに失敗する場合の対応方法

最後に

今回は、EC2からTiDB Cloud(Serverless)にTLSを使用して接続してみたことを記事にしました。
今後もTiDBやTiDB Cloudを試してみて、記事にしていきたいと思います。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.